package com.kfm.base.io.b;

import java.io.FileInputStream;
import java.nio.charset.Charset;

public class Demo02 {

    public static void main(String[] args) {
        try(FileInputStream fis = new FileInputStream("d:/io/file-input.txt")) {
            byte[] bytes = new byte[1024];
            int size;

            while( (size = fis.read(bytes)) > 0){
                /**
                 * 产生中文乱码的原因：
                 * 1. 一个中文字符占用两个字节或多个字节
                 * 2. 一个字节存储一个英文字符，一个中文字符只存储了一半，所以产生了乱码
                 *
                 * 编码不一致，产生乱码：编码不一致，就是编码和解码的时候使用的字符集不一致
                 * Charset.defaultCharset()：获取当前系统的默认编码
                 */
//                StandardCharsets.UTF_8
                String s = new String(bytes, 0, size, Charset.forName("utf-8"));
                System.out.print(s);
            }

        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}
